www.gusucode.com > 基于Visual C++高级界面特效制作百例源码程序 > 基于Visual C++高级界面特效制作百例源码程序/code/char11/flat_button/AboutDlg.cpp

    // AboutDlg.cpp : implementation file
//

#include "stdafx.h"
#include "AboutDlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CAboutDlg dialog


CAboutDlg::CAboutDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CAboutDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CAboutDlg)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
}


void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CAboutDlg)
		// NOTE: the ClassWizard will add DDX and DDV calls here
	//}}AFX_DATA_MAP
	DDX_Control(pDX, IDC_EMAILLINK, m_EMailLink);
	DDX_Control(pDX, IDC_HOMEPAGELINK, m_HomePageLink);
}


BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
	//{{AFX_MSG_MAP(CAboutDlg)
	//}}AFX_MSG_MAP
	ON_WM_PAINT()
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CAboutDlg message handlers

BOOL CAboutDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// Create OK button
	m_btnOk.SubclassDlgItem(IDOK, this);
	m_btnOk.SetIcon(IDI_OKBOR16);

	// Set HyperLink for E-Mail
	m_EMailLink.SetURL(_T(IDS_MAILADDR));
	m_EMailLink.SetUnderline(TRUE);
	m_EMailLink.SetLinkCursor(AfxGetApp()->LoadCursor(IDC_HAND));

	// Set HyperLink for Home Page
	m_HomePageLink.SetURL(_T(IDS_HOMEPAGEADDR));
	m_HomePageLink.SetUnderline(TRUE);
	m_HomePageLink.SetLinkCursor(AfxGetApp()->LoadCursor(IDC_HAND));
		
	SetLogoFont("Verdana", -25);

	// Write class version
	CString sVersion;
	sVersion.Format("CButtonST v%s", CButtonST::GetVersionC());
	GetDlgItem(IDC_VERSION)->SetWindowText(sVersion);

	// Fill friends listbox
	CListBox* lbxFriends;
	lbxFriends = (CListBox*)GetDlgItem(IDC_FRIENDS);
	lbxFriends->AddString("Armin Mendle <A.Mendle@alcatel.de>");
	lbxFriends->AddString("Mike Turner <Mike.Turner@rli.co.uk>");
	lbxFriends->AddString("Ralph Varjabedian <Sandman@BIGnet.com.lb>");
	lbxFriends->AddString("Milan Gardian <mg@tatramed.sk>");
	lbxFriends->AddString("Chris Maunder <Chris.Maunder@cbr.clw.csiro.au>");
	lbxFriends->AddString("Michael Santoro <msantoro@telerama.lm.com>");
	lbxFriends->AddString("Keith Rule <keithr@europa.com>");
	lbxFriends->AddString("Jeremy Davis <jmd@jvf.co.uk>");

	return TRUE;
}


void CAboutDlg::SetLogoFont(CString Name, int nHeight, int nWeight, BYTE bItalic, BYTE bUnderline)
{
  if(m_fontLogo.m_hObject) m_fontLogo.Detach();

  m_fontLogo.CreateFont(nHeight, 0, 0, 0, nWeight, bItalic, bUnderline,0,0,0,0,0,0, Name);
} // End of SetLogoFont


void CAboutDlg::OnPaint()
{
    CPaintDC dc(this); // device context for painting

    CRect rectDlg;
    GetWindowRect(rectDlg);
    ScreenToClient(rectDlg);

    CFont* OldFont = dc.SelectObject(&m_fontLogo);

    CSize sizeText = dc.GetTextExtent(STSIGN, strlen(STSIGN));

    dc.DrawState(CPoint((rectDlg.Width()-sizeText.cx)/2, 10), 
                 rectDlg.Size(), 
                 STSIGN, 
                 DSS_DISABLED, TRUE, 0, (CBrush*)NULL);

    dc.SelectObject(OldFont);
} // End of OnPaint